.TH std::permutable 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::permutable \- std::permutable

.SH Synopsis
   Defined in header <iterator>
   template< class I >

   concept permutable =
       std::forward_iterator<I> &&                \fI(since C++20)\fP
       std::indirectly_movable_storable<I, I> &&

       std::indirectly_swappable<I, I>;

   The concept permutable refines std::forward_iterator by adding requirements for
   reordering through moves and swaps.

   Semantic requirements

   I models permutable only if all concepts it subsumes are modeled.

.SH See also

   sortable                 specifies the common requirements of algorithms that
   (C++20)                  permute sequences into ordered sequences
                            (concept)
   ranges::remove
   ranges::remove_if        removes elements satisfying specific criteria
   (C++20)                  (niebloid)
   (C++20)
   ranges::unique           removes consecutive duplicate elements in a range
   (C++20)                  (niebloid)
   ranges::reverse          reverses the order of elements in a range
   (C++20)                  (niebloid)
   ranges::rotate           rotates the order of elements in a range
   (C++20)                  (niebloid)
   ranges::shuffle          randomly re-orders elements in a range
   (C++20)                  (niebloid)
   ranges::partition        divides a range of elements into two groups
   (C++20)                  (niebloid)
   ranges::stable_partition divides elements into two groups while preserving their
   (C++20)                  relative order
                            (niebloid)
